/*
 * @file    Object_unit_test.cpp
 * @author  Luo ZhiHui <camel.flying@gmail.com>
 * @version 1.0
 *
 * @section LICENSE
 *
 *
 * @section DESCRIPTION
 *
 *
 */

#include <Object.h>


class Car: public CObject
{
    public:
        Car(std::string carName)
        {
            car_name = carName;
        }
        ~Car()
        {
            std::cout << "~Car" << std::endl;
        }
        std::string &get_car_name()
        {
            return car_name;
        }
        void    set_car_name(std::string carName)
        {
            car_name = carName;
        }
    private:
        std::string car_name;
};

class People: public CNonCopyAble
{
    public:
        People(std::string peopleName)
        {
            people_name = peopleName;
        }
        ~People()
        {
            std::cout << "~People" << std::endl;
        }
        std::string &get_people_name()
        {
            return people_name;
        }
        void set_people_name(std::string peopleName)
        {
            people_name = peopleName;
        }
    private:
        std::string people_name;
};

int main(int argc, char **argv)
{
    Car car(std::string("falali"));
    std::cout << car.get_car_name() << std::cout;
    car.set_car_name(std::string("luozhihui"));
    std::cout << car.get_car_name() << std::cout;

    Car car1(car);
//    Car car2;
//    car2 = car;

    People people(std::string("zhangyao"));
    std::cout << people.get_people_name() << std::cout;
    people.set_people_name(std::string("luozhihui"));
    std::cout << people.get_people_name() << std::cout;


//    People people1(people);
//    People people2;
//    people2 = people;

    return 0;
}
